////
//// Created by 1065246 on 2023/8/11.
//// C语言类型转化和运算 https://zhuanlan.zhihu.com/p/138546274
////
//#include <stdio.h>
//int main(){
//
//    int a = -15;
//    printf("a is:%x\n", a);
//    char ch = 0xf6;
//    //无符号输出%u,%o,%x，都是内存存储值原样(-10的补码，1111 0110)输出
//    printf("ch unsigned is:%u\n", ch);
//    int b = -10;
//    printf("b decimal is:%u\n", b);
//
//    //
//    //有符号输出
//    printf("ch signed is:%d\n", ch);
//
//    // C语言中比int小的整型（包括short 、unsigned short 、 unsigned char和char）在运算中都要转换成int然后进行运算，至于为什么选择转换为int，
//    // 应该是从效率上考虑的，因为通常情况下int的长度被定义为机器处理效率最高的长度，比如32位机上，一次处理4个字节效率是最高的，
//    // 所以虽然short（我机器上占2个字节）更节省内存，但是在运算中的效率，是int更高。所以上面，无论是逻辑运算m>n还是算术运算m+n中m和n都默认转换成了int，所以算术运算的结果也是带符号的。
//    int n1=-11;
//    unsigned int m1=10;
//    if(m1>n1){
//        printf("m1 > n1\n");
//    } else{
//        //n1有符号转化为无符号，
//        printf("n1 > m1\n");
//    }
//
//    short n = -11;
//    unsigned short m = 10;
//    if (m > n) {
//        printf("m > n\n");
//    }
//    short i = m + n;
//    printf("m+n:%d", i);
//}